package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.UserTask;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * AIGS任务Mapper接口
 * 
 * @author ruoyi
 * @date 2024-11-21
 */
public interface UserTaskMapper 
{
    /**
     * 查询AIGS任务
     * 
     * @param id AIGS任务主键
     * @return AIGS任务
     */
    public UserTask selectUserTaskById(Long id);

    /**
     * 查询AIGS任务列表
     * 
     * @param userTask AIGS任务
     * @return AIGS任务集合
     */
    public List<UserTask> selectUserTaskList(UserTask userTask);

    /**
     * 新增AIGS任务
     * 
     * @param userTask AIGS任务
     * @return 结果
     */
    public int insertUserTask(UserTask userTask);

    /**
     * 修改AIGS任务
     * 
     * @param userTask AIGS任务
     * @return 结果
     */
    public int updateUserTask(UserTask userTask);

    /**
     * 删除AIGS任务
     * 
     * @param id AIGS任务主键
     * @return 结果
     */
    public int deleteUserTaskById(Long id);

    /**
     * 批量删除AIGS任务
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteUserTaskByIds(Long[] ids);

    @Select("select * from user_task where task = -1")
    public List<UserTask> selectUserTaskListByComplete();

    /**
     * 根据翻译id找到对应的视频
     * @param taskId
     * @return
     */
    @Select("select * from user_task where idProject = #{tid}")
    public UserTask selectUserTaskByTaskId(@Param("tid")String taskId);

    /**
     * 获得已经完成翻译，但是未完成换脸的视频
     * @return
     */
    @Select("select * from user_task WHERE translateVideoUrl IS NOT NULL AND jobid IS NULL AND task = 1")
    public List<UserTask> selectUserTaskListByCreateAli();
    /**
     * 找到正在进行换脸的任务
     */
    @Select("SELECT * FROM user_task WHERE jobid IS NOT NULL AND videoUrl IS NULL")
    public List<UserTask> selectUserTaskListByTransplant();
}
